<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003"
elementFormDefault="qualified">

    <!-- =================== INCLUDE COMMON SCHEMA =========================== -->
    <xs:include schemaLocation="Microsoft.Build.Core.xsd"/>
    
    <!-- ======================== ITEMS =====================================-->
    <!-- Possible Types include SimpleItemType (no meta-data subelements), GenericItemType (any meta-data), or something more specific.-->
    <xs:element name="Reference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Reference" _locComment="" -->Reference to an assembly</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="HintPath">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_HintPath" _locComment="" -->Relative or absolute path to the assembly (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_Name" _locComment="" -->Friendly display name (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="FusionName">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_FusionName" _locComment="" -->Fusion name of the assembly (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                            
                            <xs:element name="SpecificVersion">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_SpecificVersion" _locComment="" -->Whether only the version in the fusion name should be referenced (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Aliases">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_Aliases" _locComment="" -->Aliases for the reference (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Private">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_Private" _locComment="" -->Whether the reference should be copied to the output folder (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Reference_Include" _locComment="" -->Assembly name or filename</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="COMReference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="COMReference" _locComment="" -->Reference to a COM component</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Name" _locComment="" -->Friendly display name (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Guid">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Guid" _locComment="" -->GUID in the form {00000000-0000-0000-0000-000000000000}</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="VersionMajor">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_VersionMajor" _locComment="" -->Major part of the version number</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="VersionMinor">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_VersionMinor" _locComment="" -->Minor part of the version number</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Lcid">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Lcid" _locComment="" -->Locale ID</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="WrapperTool">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_WrapperTool" _locComment="" -->Wrapper tool, such as tlbimp</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Isolated">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Isolated" _locComment="" -->Is it isolated (boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="COMReference_Include" _locComment="" -->COM component name</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="COMFileReference" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="WrapperTool"/>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="NativeReference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="NativeReference" _locComment="" -->Reference to a native manifest file, or to a file that contains a native manifest</xs:documentation>
        </xs:annotation>        
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="NativeReference_Name" _locComment="" -->Base name of manifest file</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="HintPath">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="NativeReference_HintPath" _locComment="" -->Relative path to manifest file</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="NativeReference_Include" _locComment="" -->Reference full name</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProjectReference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ProjectReference" _locComment="" -->Reference to another project</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ProjectReference_Name" _locComment="" -->Friendly display name (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Project">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ProjectReference_Project" _locComment="" -->Project GUID, in the form {00000000-0000-0000-0000-000000000000}</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Package"/>                               
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="ProjectReference_Package" _locComment="" -->Path to project file</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>    
    <xs:element name="Compile" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Compile" _locComment="" -->Source files for compiler</xs:documentation>
        </xs:annotation>        
        <xs:complexType>           
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">                       
                        <xs:choice>
                            <xs:element name="SubType"/>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="AutoGen">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Compile_AutoGen" _locComment="" -->Whether file was generated from another file (boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                 
                            <xs:element name="DesignTime"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Compile_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="DesignTimeSharedInput"/>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Compile_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="CopyToOutputDirectory"/>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Compile_Include" _locComment="" -->Semi-colon separated list of source files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="EmbeddedResource" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="EmbeddedResource" _locComment="" -->Resources to be embedded in the generated assembly</xs:documentation>
        </xs:annotation>        
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                               
                            <xs:element name="LastGenOutput">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_LastGenOutput" _locComment="" -->File that was created by any file generator that was run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                 
                            <xs:element name="CustomToolNamespace">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_CustomToolNamespace" _locComment="" -->Namespace into which any file generator that is run on this item should create code</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory"/>
                            <xs:element name="LogicalName"/>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="EmbeddedResource_Include" _locComment="" -->Semi-colon separated list of resource files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Content" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Content" _locComment="" -->Files that are not compiled, but may be embedded or published</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="PublishState">
                               <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_PublishState" _locComment="" -->Default, Included, Excluded, DataFile, or Prerequisite</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="IsAssembly"/>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_CopyToOutputDirectory" _locComment="" -->Copy file to output directory (optional, boolean, default false)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                    
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Content_Include" _locComment="" -->Semi-colon separated list of content files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>    
    <xs:element name="None" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="None" _locComment="" -->Files that should have no role in the build process</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <!-- UNDONE. Remove all but Link when #318721 is fixed-->
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="None_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="None_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="None_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="CopyToOutputDirectory"/>                            
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="BaseApplicationManifest" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation>The base application manifest for the build. Contains ClickOnce security information.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="Folder" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Folder" _locComment="" -->Folder on disk</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="Import" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Import" _locComment="" -->Assemblies whose namespaces should be imported by the Visual Basic compiler</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="Service" type="msb:SimpleItemType" substitutionGroup="msb:Item"/>
    <xs:element name="WebReferences" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WebReferences" _locComment="" -->Name of Web References folder to display in user interface</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="WebReferenceUrl" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WebReferenceUrl" _locComment="" -->Represents a reference to a web service</xs:documentation>
        </xs:annotation>        
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="msb:SimpleItemType">
                        <xs:sequence minOccurs="0" maxOccurs="unbounded">
                            <xs:choice>
                                <xs:element name="UrlBehavior"/>
                                <xs:element name="RelPath"/>
                                <xs:element name="UpdateFromURL"/>
                                <xs:element name="ServiceLocationURL"/>
                                <xs:element name="CachedDynamicPropName"/>
                                <xs:element name="CachedAppSettingsObjectName"/>
                                <xs:element name="CachedSettingsPropName"/>
                            </xs:choice>
                        </xs:sequence>
                        <!-- redefine Include just to give a specific description -->
                        <xs:attribute name="Include" type="xs:string" use="required">
                            <xs:annotation>
                                <xs:documentation><!-- _locID_text="WebReferenceUrl_Include" _locComment="" -->URL to web service</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>                        
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
    </xs:element>
    <xs:element name="BootstrapperFile" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="BootstrapperFile_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="ProductName"/>
                            <xs:element name="Install"/>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="PublishFile" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="IsAssembly">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_IsAssembly" _locComment="" -->(boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="PublishState">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_PublishState" _locComment="" -->Default, Included, Excluded, DataFile, or Prerequisite</xs:documentation>
                                </xs:annotation>
                            </xs:element>                            
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <!-- ======================== PROPERTIES =====================================-->
    <!-- Possible Types include StringPropertyType (text with no subelements), GenericPropertyType (any content), or something more specific.-->
    <xs:element name="AllowUnsafeBlocks" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ApplicationIcon" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ApplicationRevision" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ApplicationRevision" _locComment="" -->integer</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="ApplicationVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ApplicationVersion" _locComment="" -->Matches the expression "\d\.\d\.\d\.(\d|\*)"</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="AppDesignerFolder" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="AppDesignerFolder" _locComment="" -->Name of folder for Application Designer</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="AspNetConfiguration" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyKeyContainerName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyKeyProviderName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyName" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="AssemblyName" _locComment="" -->Name of output assembly</xs:documentation>
        </xs:annotation>
    </xs:element>           
    <xs:element name="AssemblyOriginatorKeyFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyOriginatorKeyFileType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyOriginatorKeyMode" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AutorunEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="AutorunEnabled" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="BaseAddress" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="BootstrapperComponentsLocation" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="BootstrapperComponentsLocation" _locComment="" -->HomeSite, Relative, or Absolute</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="BootstrapperComponentsUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="BootstrapperEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="BootstrapperEnabled" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CheckForOverflowUnderflow" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodePage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="Configuration" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ConfigurationName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ConfigurationOverrideFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CreateWebPageOnPublish" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CreateWebPageOnPublish" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CurrentSolutionConfigurationContents" type="msb:GenericPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DebugSecurityZoneURL" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DebugSymbols" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DebugSymbols" _locComment="" -->Whether to emit symbols (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="DebugType" type="msb:StringPropertyType" substitutionGroup="msb:Property">   
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DebugType" _locComment="" -->none, pdbonly, or full</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="DefaultClientScript" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefaultHTMLPageLayout" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefaultTargetSchema" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefineConstants" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefineDebug" type="msb:StringPropertyType" substitutionGroup="msb:Property">   
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DefineDebug" _locComment="" -->Whether DEBUG is defined (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="DefineTrace" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DefineTrace" _locComment="" -->Whether TRACE is defined (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="DelaySign" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DisableLangXtns" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DisallowUrlActivation" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DisallowUrlActivation" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="DeployDirSuffix" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DocumentationFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableASPDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableASPXDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableSQLServerDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableSecurityDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableUnmanagedDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ErrorReport" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ExcludedPermissions" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FallbackCulture" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FileAlignment" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FileUpgradeFlags" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FormFactorID" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisInputAssembly" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisLogFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisModuleSuppressionsFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisProjectFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisRuleAssemblies" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisRules" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodeAnalysisUseTypeNameInSuppression" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="GenerateManifests" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="GenerateSerializationAssemblies" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="Install" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="InstallFrom" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="InstallFrom" _locComment="" -->Web, Unc, or Disk</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="InstallUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="IsWebBootstrapper" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="JCPA" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="LangVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ManifestCertificateThumbprint" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ManifestKeyFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="MapFileExtensions" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="MapFileExtensions" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="MinimumRequiredVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="MinimumRequiredVersion" _locComment="" -->Matches the expression "\d\.\d\.\d\.\d"</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="MyType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="NoConfig" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="NoStandardLibraries" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="NoStdLib" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="NoStdLib" _locComment="" -->Whether standard libraries (such as mscorlib) should be referenced automatically (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="NoWarn" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="NoWarn" _locComment="" -->Comma separated list of disabled warnings</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="OpenBrowserOnPublish" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OpenBrowserOnPublish" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="Optimize" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Optimize" _locComment="" -->Should compiler optimize output (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>     
    <xs:element name="OptionCompare" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionCompare" _locComment="" -->Option Compare setting (Text or Binary)</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="OptionExplicit" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionExplicit" _locComment="" -->Should Option Explicit be set (On or Off)</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="OptionStrict" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionStrict" _locComment="" -->Should Option Strict be set (On or Off)</xs:documentation>
        </xs:annotation>
    </xs:element>            
    <xs:element name="OSVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="OutputPath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OutputPath" _locComment="" -->Path to output folder, with trailing slash</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="OutputType" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OutputType" _locComment="" -->Type of output to generate (WinExe, Exe, or Library)</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="Platform" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PlatformName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PlatformFamilyName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="PlatformID" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="PlatformTarget" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PostBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="PostBuildEvent" _locComment="" -->Command line to be run at the end of build</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="PreBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="PreBuildEvent" _locComment="" -->Command line to be run at the start of build</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="ProductName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProductVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProjectGuid" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProjectType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProjectTypeGuids" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PublisherName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PublishUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RecursePath" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ReferencePath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ReferencePath" _locComment="" -->Semi-colon separated list of folders to search during reference resolution</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="RegisterForComInterop" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RemoteDebugEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RemoteDebugMachine" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RemoveIntegerChecks" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ResponseFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RootNamespace" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RunCodeAnalysis" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RunPostBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SchemaVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SecureScoping" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SignAssembly" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SignManifests" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionDir" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionExt" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionFileName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionPath" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartAction" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartArguments" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartPage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartProgram" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartURL" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartWithIE" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartWorkingDirectory" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartupObject" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="StartupObject" _locComment="" -->Type that contains the main entry point</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="SupportUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TargetCulture" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TargetFrameworkVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="TargetZone" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TreatWarningsAsErrors" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TrustUrlParameters" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="TrustUrlParameters" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="TypeComplianceDiagnostics" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UpdateEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateEnabled" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="UpdateInterval" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UpdateIntervalUnits" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateIntervalUnits" _locComment="" -->Hours, Days, or Weeks</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="UpdateMode" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateMode" _locComment="" -->Foreground or Background</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="UpdatePeriodically" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdatePeriodically" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="UpdateRequired" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateRequired" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="UpdateUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="UTF8OutPut" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UseVSHostingProcess" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="VSTO_TrustAssembliesLocation" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="WarningLevel" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WarningLevel" _locComment="" -->integer between 0 and 4 inclusive</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="WarningsAsErrors" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WarningsAsErrors" _locComment="" -->Comma separated list of warning numbers to treat as errors</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="WebPage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="Win32ResourceFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <!-- ======================== TASKS =====================================-->
    <xs:element name="AL" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AlgorithmId" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CompanyName" />
                    <xs:attribute name="Configuration" />
                    <xs:attribute name="Copyright" />
                    <xs:attribute name="Culture" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="Description" />
                    <xs:attribute name="EmbedResources" />
                    <xs:attribute name="EvidenceFile" />
                    <xs:attribute name="FileVersion" />
                    <xs:attribute name="Flags" />
                    <xs:attribute name="GenerateFullPaths" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="OutputAssembly" use="required" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="ProductName" />
                    <xs:attribute name="ProductVersion" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="SourceModules" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="TemplateFile" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="Title" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="Trademark" />
                    <xs:attribute name="Version" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AspNetCompiler" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AllowPartiallyTrustedCallers" type="msb:boolean" />
                    <xs:attribute name="Clean" type="msb:boolean" />
                    <xs:attribute name="Debug" type="msb:boolean" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="FixedNames" type="msb:boolean" />
                    <xs:attribute name="Force" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="MetabasePath" />
                    <xs:attribute name="PhysicalPath" />
                    <xs:attribute name="TargetPath" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="Updateable" type="msb:boolean" />
                    <xs:attribute name="VirtualPath" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AssignCulture" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Files" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AssignProjectConfiguration" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AssignedProjects" />
                    <xs:attribute name="ProjectReferences" use="required" />
                    <xs:attribute name="SolutionConfigurationContents" />
                    <xs:attribute name="UnassignedProjects" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AssignTargetPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Files" />
                    <xs:attribute name="RootFolder" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CallTarget" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="RunEachTargetSeparately" type="msb:boolean" />
                    <xs:attribute name="Targets" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CombinePath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Paths" use="required" />
                    <xs:attribute name="BasePath" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Copy" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DestinationFiles" />
                    <xs:attribute name="DestinationFolder" />
                    <xs:attribute name="SkipUnchangedFiles" type="msb:boolean" />
                    <xs:attribute name="SourceFiles" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateCSharpManifestResourceName" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ResourceFiles" use="required" />
                    <xs:attribute name="RootNamespace" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateItem" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalMetadata" />
                    <xs:attribute name="Exclude" />
                    <xs:attribute name="Include" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateProperty" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Value" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateTemporaryVCProject" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Configuration" use="required" />
                    <xs:attribute name="OutputProjectFile" use="required" />
                    <xs:attribute name="ProjectFile" use="required" />
                    <xs:attribute name="ReferenceAssemblies" />
                    <xs:attribute name="ReferenceImportLibraries" />
                    <xs:attribute name="ReferenceGuids" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateVisualBasicManifestResourceName" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ResourceFiles" use="required" />
                    <xs:attribute name="RootNamespace" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Csc" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AddModules" />
                    <xs:attribute name="AllowUnsafeBlocks" type="msb:boolean" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CheckForOverflowUnderflow" type="msb:boolean" />
                    <xs:attribute name="CodePage" />
                    <xs:attribute name="DebugType" />
                    <xs:attribute name="DefineConstants" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="DisabledWarnings" />
                    <xs:attribute name="DocumentationFile" />
                    <xs:attribute name="EmitDebugInformation" type="msb:boolean" />
                    <xs:attribute name="ErrorReport" />
                    <xs:attribute name="FileAlignment" />
                    <xs:attribute name="GenerateFullPaths" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LangVersion" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="ModuleAssemblyName" />
                    <xs:attribute name="NoConfig" type="msb:boolean" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="NoStandardLib" type="msb:boolean" />
                    <xs:attribute name="Optimize" type="msb:boolean" />
                    <xs:attribute name="OutputAssembly" />
                    <xs:attribute name="PdbFile" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="References" />
                    <xs:attribute name="Resources" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="Sources" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="UseHostCompilerIfAvailable" type="msb:boolean" />
                    <xs:attribute name="Utf8Output" type="msb:boolean" />
                    <xs:attribute name="WarningLevel" />
                    <xs:attribute name="WarningsAsErrors" />
                    <xs:attribute name="WarningsNotAsErrors" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Delete" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DeletedFiles" />
                    <xs:attribute name="Files" use="required" />
                    <xs:attribute name="TreatErrorsAsWarnings" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Error" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Code" />
                    <xs:attribute name="HelpKeyword" />
                    <xs:attribute name="Text" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Exec" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Command" use="required" />
                    <xs:attribute name="IgnoreExitCode" type="msb:boolean" />
                    <xs:attribute name="Outputs" />
                    <xs:attribute name="StdErrEncoding" />
                    <xs:attribute name="StdOutEncoding" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="WorkingDirectory" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="FindUnderPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Files" />
                    <xs:attribute name="InPath" />
                    <xs:attribute name="OutOfPath" />
                    <xs:attribute name="Path" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="FormatUrl" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="InputUrl" />
                    <xs:attribute name="OutputUrl" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="FormatVersion" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="FormatType" />
                    <xs:attribute name="OutputVersion" />
                    <xs:attribute name="Revision" />
                    <xs:attribute name="Version" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateApplicationManifest" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AssemblyName" />
                    <xs:attribute name="AssemblyVersion" />
                    <xs:attribute name="ClrVersion" />
                    <xs:attribute name="ConfigFile" />
                    <xs:attribute name="Dependencies" />
                    <xs:attribute name="Description" />
                    <xs:attribute name="EntryPoint" />
                    <xs:attribute name="Files" />
                    <xs:attribute name="IconFile" />
                    <xs:attribute name="InputManifest" />
                    <xs:attribute name="IsolatedComReferences" />
                    <xs:attribute name="ManifestType" />
                    <xs:attribute name="MaxTargetPath" />
                    <xs:attribute name="OSVersion" />
                    <xs:attribute name="OutputManifest" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="TargetCulture" />
                    <xs:attribute name="TrustInfoFile" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateBootstrapper" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ApplicationFile" />
                    <xs:attribute name="ApplicationName" />
                    <xs:attribute name="ApplicationUrl" />
                    <xs:attribute name="BootstrapperComponentFiles" />
                    <xs:attribute name="BootstrapperItems" />
                    <xs:attribute name="BootstrapperKeyFile" />
                    <xs:attribute name="ComponentsLocation" />
                    <xs:attribute name="ComponentsUrl" />
                    <xs:attribute name="CopyComponents" type="msb:boolean" />
                    <xs:attribute name="Culture" />
                    <xs:attribute name="FallbackCulture" />
                    <xs:attribute name="OutputPath" />
                    <xs:attribute name="Path" />
                    <xs:attribute name="SupportUrl" />
                    <xs:attribute name="Validate" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateDeploymentManifest" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AssemblyName" />
                    <xs:attribute name="AssemblyVersion" />
                    <xs:attribute name="DeploymentUrl" />
                    <xs:attribute name="Description" />
                    <xs:attribute name="DisallowUrlActivation" type="msb:boolean" />
                    <xs:attribute name="EntryPoint" />
                    <xs:attribute name="InputManifest" />
                    <xs:attribute name="Install" type="msb:boolean" />
                    <xs:attribute name="MapFileExtensions" type="msb:boolean" />
                    <xs:attribute name="MaxTargetPath" />
                    <xs:attribute name="MinimumRequiredVersion" />
                    <xs:attribute name="OutputManifest" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="Product" />
                    <xs:attribute name="Publisher" />
                    <xs:attribute name="SupportUrl" />
                    <xs:attribute name="TargetCulture" />
                    <xs:attribute name="TrustUrlParameters" type="msb:boolean" />
                    <xs:attribute name="UpdateEnabled" type="msb:boolean" />
                    <xs:attribute name="UpdateInterval" />
                    <xs:attribute name="UpdateMode" />
                    <xs:attribute name="UpdateUnit" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateResource" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="NeverLockTypeAssemblies" type="msb:boolean" />
                    <xs:attribute name="OutputResources" />
                    <xs:attribute name="PublicClass" type="msb:boolean" />
                    <xs:attribute name="References" />
                    <xs:attribute name="Sources" use="required" />
                    <xs:attribute name="StateFile" />
                    <xs:attribute name="StronglyTypedClassName" />
                    <xs:attribute name="StronglyTypedFilename" />
                    <xs:attribute name="StronglyTypedLanguage" />
                    <xs:attribute name="StronglyTypedNamespace" />
                    <xs:attribute name="UseSourcePath" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateTrustInfo" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="BaseManifest" />
                    <xs:attribute name="ExcludedPermissions" />
                    <xs:attribute name="TargetZone" />
                    <xs:attribute name="TrustInfoFile" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GetAssemblyIdentity" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="AssemblyFiles" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GetFrameworkPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Path" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GetFrameworkSdkPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Path" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="LC" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="LicenseTarget" use="required" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="OutputDirectory" />
                    <xs:attribute name="OutputLicense" />
                    <xs:attribute name="ReferencedAssemblies" />
                    <xs:attribute name="Sources" use="required" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MakeDir" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Directories" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Message" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Importance" type="msb:importance" />
                    <xs:attribute name="Text" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Projects" use="required" />
                    <xs:attribute name="Properties" />
                    <xs:attribute name="RebaseOutputs" type="msb:boolean" />
                    <xs:attribute name="RunEachTargetSeparately" type="msb:boolean" />
                    <xs:attribute name="StopOnFirstFailure" type="msb:boolean" />
                    <xs:attribute name="Targets" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ReadLinesFromFile" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="File" use="required" />
                    <xs:attribute name="Lines" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="RegisterAssembly" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Assemblies" use="required" />
                    <xs:attribute name="AssemblyListFile" />
                    <xs:attribute name="CreateCodeBase" type="msb:boolean" />
                    <xs:attribute name="TypeLibFiles" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="RemoveDir" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Directories" use="required" />
                    <xs:attribute name="RemovedDirectories" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="RemoveDuplicates" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Filtered" />
                    <xs:attribute name="Inputs" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveAssemblyReference" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AllowedAssemblyExtensions" />
                    <xs:attribute name="AppConfigFile" />
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="AssemblyFiles" />
                    <xs:attribute name="AutoUnify" type="msb:boolean" />
                    <xs:attribute name="CandidateAssemblyFiles" />
                    <xs:attribute name="FilesWritten" />
                    <xs:attribute name="FindDependencies" type="msb:boolean" />
                    <xs:attribute name="FindRelatedFiles" type="msb:boolean" />
                    <xs:attribute name="FindSatellites" type="msb:boolean" />
                    <xs:attribute name="FindSerializationAssemblies" type="msb:boolean" />
                    <xs:attribute name="InstalledAssemblyTables" />
                    <xs:attribute name="SearchPaths" use="required" />
                    <xs:attribute name="Silent" type="msb:boolean" />
                    <xs:attribute name="StateFile" />
                    <xs:attribute name="TargetFrameworkDirectories" />
                    <xs:attribute name="TargetProcessorArchitecture" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveComReference" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="NoClassMembers" type="msb:boolean" />
                    <xs:attribute name="ResolvedAssemblyReferences" />
                    <xs:attribute name="ResolvedFiles" />
                    <xs:attribute name="ResolvedModules" />
                    <xs:attribute name="StateFile" />
                    <xs:attribute name="TypeLibFiles" />
                    <xs:attribute name="TypeLibNames" />
                    <xs:attribute name="WrapperOutputDirectory" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveKeySource" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AutoClosePasswordPromptShow" />
                    <xs:attribute name="AutoClosePasswordPromptTimeout" />
                    <xs:attribute name="CertificateFile" />
                    <xs:attribute name="CertificateThumbprint" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="ResolvedKeyContainer" />
                    <xs:attribute name="ResolvedKeyFile" />
                    <xs:attribute name="ResolvedThumbprint" />
                    <xs:attribute name="ShowImportDialogDespitePreviousFailures" type="msb:boolean" />
                    <xs:attribute name="SuppressAutoClosePasswordPrompt" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveManifestFiles" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="EntryPoint" />
                    <xs:attribute name="ExtraFiles" />
                    <xs:attribute name="Files" />
                    <xs:attribute name="ManagedAssemblies" />
                    <xs:attribute name="NativeAssemblies" />
                    <xs:attribute name="OutputAssemblies" />
                    <xs:attribute name="OutputFiles" />
                    <xs:attribute name="PublishFiles" />
                    <xs:attribute name="SatelliteAssemblies" />
                    <xs:attribute name="TargetCulture" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveNativeReference" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalSearchPaths" use="required" />
                    <xs:attribute name="ContainedComComponents" />
                    <xs:attribute name="ContainedLooseEtcFiles" />
                    <xs:attribute name="ContainedLooseTlbFiles" />
                    <xs:attribute name="ContainedPrerequisiteAssemblies" />
                    <xs:attribute name="ContainedTypeLibraries" />
                    <xs:attribute name="ContainingReferenceFiles" />
                    <xs:attribute name="NativeReferences" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveNonMSBuildProjectOutput" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="PreresolvedProjectOutputs" />
                    <xs:attribute name="ProjectReferences" use="required" />
                    <xs:attribute name="ResolvedOutputPaths" />
                    <xs:attribute name="UnresolvedProjectReferences" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveVCProjectOutput" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Configuration" />
                    <xs:attribute name="Override" />
                    <xs:attribute name="ProjectReferences" use="required" />
                    <xs:attribute name="ResolvedImportLibraryPaths" />
                    <xs:attribute name="ResolvedOutputPaths" />
                    <xs:attribute name="SolutionFile" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="SGen" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="BuildAssemblyName" use="required" />
                    <xs:attribute name="BuildAssemblyPath" use="required" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="References" />
                    <xs:attribute name="SerializationAssembly" />
                    <xs:attribute name="ShouldGenerateSerializer" use="required" type="msb:boolean" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="UseProxyTypes" use="required" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="SignFile" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="CertificateThumbprint" use="required" />
                    <xs:attribute name="SigningTarget" use="required" />
                    <xs:attribute name="TimestampUrl" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Touch" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AlwaysCreate" type="msb:boolean" />
                    <xs:attribute name="Files" use="required" />
                    <xs:attribute name="ForceTouch" type="msb:boolean" />
                    <xs:attribute name="Time" />
                    <xs:attribute name="TouchedFiles" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="UnregisterAssembly" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="AssemblyListFile" />
                    <xs:attribute name="TypeLibFiles" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="UpdateManifest" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ApplicationManifest" use="required" />
                    <xs:attribute name="ApplicationPath" use="required" />
                    <xs:attribute name="InputManifest" use="required" />
                    <xs:attribute name="OutputManifest" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Vbc" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AddModules" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CodePage" />
                    <xs:attribute name="DebugType" />
                    <xs:attribute name="DefineConstants" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="DisabledWarnings" />
                    <xs:attribute name="DocumentationFile" />
                    <xs:attribute name="EmitDebugInformation" type="msb:boolean" />
                    <xs:attribute name="ErrorReport" />
                    <xs:attribute name="FileAlignment" />
                    <xs:attribute name="GenerateDocumentation" type="msb:boolean" />
                    <xs:attribute name="Imports" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="NoConfig" type="msb:boolean" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="NoStandardLib" type="msb:boolean" />
                    <xs:attribute name="NoWarnings" type="msb:boolean" />
                    <xs:attribute name="Optimize" type="msb:boolean" />
                    <xs:attribute name="OptionCompare" />
                    <xs:attribute name="OptionExplicit" type="msb:boolean" />
                    <xs:attribute name="OptionStrict" type="msb:boolean" />
                    <xs:attribute name="OptionStrictType" />
                    <xs:attribute name="OutputAssembly" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="References" />
                    <xs:attribute name="RemoveIntegerChecks" type="msb:boolean" />
                    <xs:attribute name="Resources" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="RootNamespace" />
                    <xs:attribute name="SdkPath" />
                    <xs:attribute name="Sources" />
                    <xs:attribute name="TargetCompactFramework" type="msb:boolean" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="UseHostCompilerIfAvailable" type="msb:boolean" />
                    <xs:attribute name="Utf8Output" type="msb:boolean" />
                    <xs:attribute name="Verbosity" />
                    <xs:attribute name="WarningsAsErrors" />
                    <xs:attribute name="WarningsNotAsErrors" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="VCBuild" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AdditionalOptions" />
                    <xs:attribute name="Clean" type="msb:boolean" />
                    <xs:attribute name="Configuration" />
                    <xs:attribute name="Override" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="Projects" use="required" />
                    <xs:attribute name="Rebuild" type="msb:boolean" />
                    <xs:attribute name="SolutionFile" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="UserEnvironment" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Warning" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Code" />
                    <xs:attribute name="HelpKeyword" />
                    <xs:attribute name="Text" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="WriteLinesToFile" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="File" use="required" />
                    <xs:attribute name="Lines" />
                    <xs:attribute name="Overwrite" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateJSharpManifestResourceName" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ResourceFiles" use="required" />
                    <xs:attribute name="RootNamespace" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Vjc" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AddModules" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CodePage" />
                    <xs:attribute name="DebugType" />
                    <xs:attribute name="DefineConstants" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="DisabledWarnings" />
                    <xs:attribute name="DisableExtensions" />
                    <xs:attribute name="DocumentationFile" />
                    <xs:attribute name="EmitDebugInformation" type="msb:boolean" />
                    <xs:attribute name="FileAlignment" />
                    <xs:attribute name="Jcpa" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="NoConfig" type="msb:boolean" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="Optimize" type="msb:boolean" />
                    <xs:attribute name="OutputAssembly" />
                    <xs:attribute name="References" />
                    <xs:attribute name="Resources" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="SecureScoping" type="msb:boolean" />
                    <xs:attribute name="Sources" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="Utf8Output" type="msb:boolean" />
                    <xs:attribute name="WarningLevel" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="VjsResGen" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="OutputResx" />
                    <xs:attribute name="Sources" use="required" />
                    <xs:attribute name="Wildcards" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CodeAnalysis" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ApplyLogFileXsl" type="msb:boolean" />
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="ConsoleXsl" />
                    <xs:attribute name="DependentAssemblyPaths" />
                    <xs:attribute name="Dictionaries" />
                    <xs:attribute name="Imports" />
                    <xs:attribute name="LogFile" />
                    <xs:attribute name="LogFileXsl" />
                    <xs:attribute name="OutputToConsole" type="msb:boolean" />
                    <xs:attribute name="PlatformPath" />
                    <xs:attribute name="Project" />
                    <xs:attribute name="References" />
                    <xs:attribute name="RuleAssemblies" />
                    <xs:attribute name="Rules" />
                    <xs:attribute name="Summary" type="msb:boolean" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="UpdateProjectFile" type="msb:boolean" />
                    <xs:attribute name="Verbose" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
</xs:schema>
